async function loadZip(zipFile) {
    const zip = new JSZip();
    const zipData = await zip.loadAsync(zipFile)

    const dataObj = {}
    const fileList = Object.values(zipData.files)
    for (const file of fileList) {
        const text = await file.async('text')
        const data = csvText2JSON(text)
        dataObj[file.name.split('.')[0]] = data
    }

    _funcCb(true, {
        data: dataObj
    })
}

function csvText2JSON(string) {
    let splitStr = string.includes('\r\n') ? '\r\n' : '\n'
    const split = string.split(splitStr)
    const result = []
    const headerStr = split[0].split("\uFEFF").pop()
    const headerList = headerStr.split(',')
    for (let i = 1; i < split.length; i++) {
        if (!split[i]) {
            continue
        }
        const data = split[i].split(',')
        const obj = {}
        for (let i = 0; i < headerList.length; i++) {
            if (data[i] !== 'NULL') {
                obj[headerList[i]] = data[i]
            }
        }
        result.push(obj)
    }
    return result
}

loadZip(zipFile)